<!DOCTYPE html>
<html class="client-nojs vector-feature-language-in-header-enabled vector-feature-language-in-main-page-header-disabled vector-feature-page-tools-pinned-disabled vector-feature-toc-pinned-clientpref-0 vector-toc-not-available vector-feature-main-menu-pinned-disabled vector-feature-limited-width-clientpref-1 vector-feature-limited-width-content-enabled vector-feature-custom-font-size-clientpref-1 vector-feature-appearance-pinned-clientpref-0 skin-theme-clientpref-day vector-sticky-header-enabled" lang="de" dir="ltr"><head>
<meta charset="UTF-8">
<title>Open SQL</title>
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<link rel="icon" type="image/png" href="./_res_/favicon.png">
<link rel="canonical" href="https://de.wikipedia.org/wiki/Open_SQL"> <link href="./_mw_/ext.wikimediamessages.styles.css" rel="stylesheet" type="text/css">
<link href="./_mw_/skins.vector.icons.css" rel="stylesheet" type="text/css">
<link href="./_mw_/skins.vector.search.codex.styles.css" rel="stylesheet" type="text/css">
<link href="./_mw_/skins.vector.styles.css" rel="stylesheet" type="text/css">
<meta name="ResourceLoaderDynamicStyles" content="">
<link href="./_mw_/ext.gadget.citeRef.css" rel="stylesheet" type="text/css">
<link href="./_mw_/ext.gadget.defaultPlainlinks.css" rel="stylesheet" type="text/css">
<link href="./_mw_/ext.gadget.dewikiCommonHide.css" rel="stylesheet" type="text/css">
<link href="./_mw_/ext.gadget.dewikiCommonLayout.css" rel="stylesheet" type="text/css">
<link href="./_mw_/ext.gadget.dewikiCommonStyle.css" rel="stylesheet" type="text/css">
<link href="./_mw_/ext.gadget.dewikiDarkmode.css" rel="stylesheet" type="text/css">
<link href="./_mw_/ext.gadget.dewikiResponsive.css" rel="stylesheet" type="text/css">
<link href="./_mw_/ext.gadget.specialSearch.css" rel="stylesheet" type="text/css">
<link rel="stylesheet" type="text/css" href="./_mw_/site.styles.css">
<link rel="stylesheet" type="text/css" href="./_mw_/noscript.css">
<link rel="stylesheet" type="text/css" href="./_res_/footer.css">
<link rel="stylesheet" type="text/css" href="./_res_/vector-2022.css">
</head>
<body class="skin--responsive skin-vector skin-vector-search-vue mediawiki ltr sitedir-ltr mw-hide-empty-elt ns-0 ns-subject page-Open_SQL rootpage-Open_SQL skin-vector-2022 action-view">
<div class="mw-page-container">
<div class="mw-page-container-inner">
<div class="mw-content-container">
<main id="content" class="mw-body">
<header class="mw-body-header vector-page-titlebar">
<h1 id="firstHeading" class="firstHeading mw-first-heading"><span class="mw-page-title-main">Open SQL</span></h1>
</header>
<a id="top"></a>
<div id="bodyContent" class="vector-body ve-init-mw-desktopArticleTarget-targetContainer" aria-labelledby="firstHeading" data-mw-ve-target-container="">
<div id="contentSub">
<div id="mw-content-subtitle"></div>
</div>
<div id="mw-content-text" class="mw-body-content mw-content-ltr" lang="de" dir="ltr"><div class="mw-content-ltr mw-parser-output" lang="de" dir="ltr"><p><b>Open SQL</b> ist ein proprietäres SQL-Derivat, das vom Unternehmen <a href="SAP" title="SAP">SAP</a> stammt. SAP beabsichtigt damit, einen einheitlichen <a href="SQL" title="SQL">SQL</a>-Dialekt für alle von SAP unterstützten Datenbanken anzubieten. Open SQL ist Bestandteil der Programmiersprache <a href="ABAP" title="ABAP">ABAP</a>. Es gibt aber auch eine (weniger bedeutsame) Version für <a href="Java_(Programmiersprache)" title="Java (Programmiersprache)">Java</a>. Die Benutzung von Open SQL setzt einen SAP ABAP oder Java Application Server voraus. Außerdem müssen alle verwendeten <a href="Datenbanktabelle" title="Datenbanktabelle">Datenbanktabellen</a> im SAP-eigenen Dictionary erstellt werden. Ziel von Open SQL ist es, dass die verwendeten SQL-Befehle auf allen Datenbanken das gleiche Ergebnis liefern. Zu diesem Zweck enthält der jeweilige Application Server einen eigenen SQL-<a href="Parser" title="Parser">Parser</a> und einen Umsetzer, der das Open-SQL-Kommando in den jeweiligen nativen Datenbankdialekt umwandelt.
</p>
<div class="mw-heading mw-heading2"><h2 id="Funktionalität_und_Umfang"><span id="Funktionalit.C3.A4t_und_Umfang"></span>Funktionalität und Umfang</h2></div>
<p>In neueren Versionen enthält Open SQL für ABAP große Teile des SQL-92-Standards mit vielen Erweiterungen. So werden beispielsweise Arithmetische Ausdrücke, CASE ... ENDCASE, einige SQL-Funktionen und Common Table Expressions unterstützt. Durch Emulation innerhalb des Application Servers können auch Funktionen angeboten werden, die nicht alle von SAP unterstützten Datenbanken unterstützen. Ein Beispiel sind hier z. B. Streams und Lokatoren, mit denen große LOB-Felder auf der Datenbank abschnittsweise gelesen und geschrieben werden können.
</p><p>Der Umfang von Open SQL für Java ist deutlich geringer.
</p>
<div class="mw-heading mw-heading2"><h2 id="Besonderheiten">Besonderheiten</h2></div>
<ul><li>Lückenlose Integration in das SAP(ABAP)-Typsystem, unabhängig vom Typsystem der Datenbank.</li>
<li>Statischer Syntaxcheck zur Compilezeit (etwa im Gegensatz zu anderen Datenbankschnittstellen, wie <a href="JDBC" class="mw-redirect" title="JDBC">JDBC</a>).</li>
<li>Dynamisches und halbdynamisches SQL (Teile des SQL Statements können dynamisch zur Laufzeit übergeben werden. Die statischen Anteile können trotzdem zur Compilezeit überprüft werden).</li>
<li>SAP eigene Erweiterungen, z. B. FOR ALL ENTRIES (Join von Datenbanktabellen mit sogenannten internen Tabellen, d. h. Variablen).</li>
<li>Tabellen können im Application Server gepuffert und dann mittels Open SQL ohne Datenbankzugriff gelesen werden. Zu diesem Zweck enthält der Application Server eine (<a href="In-Memory-Datenbank" title="In-Memory-Datenbank">in memory</a>) Datenbankengine (mit stark reduziertem Umfang).</li></ul>
<div class="mw-heading mw-heading2"><h2 id="Unterstützte_Datenbanken"><span id="Unterst.C3.BCtzte_Datenbanken"></span>Unterstützte Datenbanken</h2></div>
<p>In aktuellen SAP-Releases werden <a href="SAP_HANA" title="SAP HANA">SAP HANA</a>, <a href="Oracle" title="Oracle">Oracle</a>, <a href="MaxDB" class="mw-redirect" title="MaxDB">MaxDB</a>, <a href="DB2" class="mw-redirect" title="DB2">DB2</a>, <a href="Microsoft_SQL_Server" title="Microsoft SQL Server">Microsoft SQL Server</a> und <a href="Sybase" title="Sybase">Sybase</a> ASE unterstützt. Historisch wurde auch <a href="Informix" title="Informix">Informix</a> unterstützt.
</p>
<div class="mw-heading mw-heading2"><h2 id="Native_SQL">Native SQL</h2></div>
<p>Mit Native SQL bezeichnet SAP die SQL-Dialekte der zugrunde liegenden Datenbanken. Ein Beispiel wäre das SQL der Oracle-Datenbank, welches ebenso wie DB2 oder MaxDB einen anderen Sprachumfang als Open SQL besitzt. Die <a href="ABAP" title="ABAP">ABAP</a>-Laufzeitumgebung setzt dann die Open-SQL-Kommandos in die entsprechenden Native-SQL-Kommandos um. Mittels ADBC bzw. <a href="JDBC" class="mw-redirect" title="JDBC">JDBC</a> oder <a href="AMDP_(Informatik)" title="AMDP (Informatik)">AMDP (Informatik)</a> (nur ABAP) können in ABAP resp. Java auch direkt Native-SQL-Kommandos abgesetzt werden.
</p>
<div class="mw-heading mw-heading2"><h2 id="Schlüsselwörter"><span id="Schl.C3.BCsselw.C3.B6rter"></span>Schlüsselwörter</h2></div>
<p>Der Sprachvorrat von Open SQL besteht aus einer Untermenge der Schlüsselwörter des Standard-<a href="SQL" title="SQL">SQL</a>, der mit einigen SAP-spezifischen Elementen angereichert wurde. Folgende Schlüsselwörter sind in Open SQL verwendbar:
</p>
<ul><li>SELECT, ENDSELECT</li>
<li>INSERT</li>
<li>MODIFY</li>
<li>UPDATE</li>
<li>DELETE</li>
<li>OPEN CURSOR, CLOSE CURSOR</li>
<li>FETCH</li>
<li>WITH (seit ABAP Kernel 749)</li></ul>
<p>Open SQL enthält keine Kommandos der <a href="Data_Definition_Language" title="Data Definition Language">Data Definition Language</a>. Mit Open-SQL-Methoden können keine Tabellen oder Views angelegt oder verändert werden. Dies ist nur über das ABAP bzw. Java Dictionary möglich.
</p>
<div class="mw-heading mw-heading2"><h2 id="Systemvariablen">Systemvariablen</h2></div>
<p>Zwei Systemvariablen, die zur Rückgabe von Werten verwendet werden, werden von den Open-SQL-Kommandos unterstützt und gehören zum Sprachvorrat von Open SQL:
</p>
<dl><dt>SY-SUBRC</dt>
<dd>Rückgabewert des zuletzt aufgerufenen Kommandos.</dd>
<dt>SY-DBCNT</dt>
<dd>Anzahl der Datensätze, die vom zuletzt aufgerufenen SQL-Kommando verarbeitet wurden.</dd></dl>
<div class="mw-heading mw-heading2"><h2 id="Weblinks">Weblinks</h2></div>
<ul><li><span class="cite"><a rel="nofollow" class="external text" href="https://help.sap.com/viewer/fe24b0146c551014891ad42d6b2789e5/7.02.22/de-DE/fceb3969358411d1829f0000e829fbfe.html"><i>Open SQL | SAP Help-Portal.</i></a> SAP,<span class="Abrufdatum"> abgerufen am 14. Juni 2020</span>.</span><span style="display: none;" class="Z3988" title="ctx_ver=Z39.88-2004&rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Adc&rfr_id=info%3Asid%2Fde.wikipedia.org%3AOpen+SQL&rft.title=Open+SQL+%7C+SAP+Help-Portal&rft.description=Open+SQL+%7C+SAP+Help-Portal&rft.identifier=https%3A%2F%2Fhelp.sap.com%2Fviewer%2Ffe24b0146c551014891ad42d6b2789e5%2F7.02.22%2Fde-DE%2Ffceb3969358411d1829f0000e829fbfe.html&rft.publisher=SAP"> </span></li></ul></div><!--htdig_noindex--><div><div class="zim-footer">
Dieser Artikel wurde von <a class="external text" title="Zuletzt bearbeitet am 2023-10-24" href="https://de.wikipedia.org/wiki/?title=Open_SQL&oldid=238459428">Wikipedia</a> herausgegeben. Der Text ist unter <a class="external text" href="https://creativecommons.org/licenses/by-sa/4.0/deed.de">Creative Commons Attribution-Share Alike 4.0</a> verfügbar, sofern nicht anders angegeben. Für die Mediendateien können zusätzliche Bedingungen gelten.
</div>
</div><!--/htdig_noindex--></div>
</div>
</main>
</div>
</div>
</div>
<script src="./_webp_/webpHandler.js"></script>
</body></html>